package com.houger.ddd.seckill.infra.entity;

import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import java.io.Serial;

/**
 * 奖池配置表
 *
 * @author Administrator
 * @version $$ Revision:1.0.0, $$ Date: 2022-02-25 18:48:04 $$
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@DynamicInsert
@DynamicUpdate
@Entity
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "activity_reward_item")
public class ActivityRewardItem extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 活动模板ID
     */
    private Long templateId;

    /**
     * 活动模板代码
     */
    private String templateCode;

    /**
     * 奖励人类型 0-所有参与人 1-奖励发起人 2-奖励受邀人
     */
    private Integer awardeeType;

    /**
     * 奖品类型 0-无 1-优惠券 2-积分 3-商品 4-抽奖次数 99-奖品包
     */
    private Integer itemType;

    /**
     * 奖品代码(券码, SKU)
     */
    private String itemCode;

    /**
     * 奖品名称
     */
    private String itemName;

    /**
     * 奖品图片
     */
    private String itemIcon;

    /**
     * 奖品数量
     */
    private Integer rewardCount;

    /**
     * 奖品排序
     */
    private Integer itemOrder;

    /**
     * 奖品单日最大释放限制
     */
    private Integer dailyReleaseLimit;

    /**
     * 奖品维度-用户可最大获得奖励次数 -1不限制
     */
    private Integer playerRewardMax;

    /**
     * 奖品维度-用户每日可最大获得奖励次数 -1不限制
     */
    private Integer playerDailyRewardMax;

    /**
     * 库存限制类型 0-无限制 1-有限制
     */
    private Integer invLimitType;

    /**
     * 奖品总库存
     */
    private Integer invTotal;

    /**
     * 已发放库存
     */
    private Integer invUsed;


    /**
     * 扩展参数
     */
    private String extData;


}
